package com.auto.code.service.impl;

import com.auto.code.domain.DBInfoDO;
import com.auto.code.domain.DBInfoDTO;
import com.auto.code.domain.TemplateGroupDTO;
import com.auto.code.util.MapUtils;
import com.auto.code.util.ObjectClone;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.auto.code.dao.TemplateGroupDAO;
import com.auto.code.domain.TemplateGroupDO;
import com.auto.code.service.TemplateGroupService;

import java.util.List;

@Service
public class TemplateGroupServiceImpl implements TemplateGroupService {
	@Autowired
	private TemplateGroupDAO templateGroupDAO;

	@Override
	public int deleteById(Long id) {
		return templateGroupDAO.deleteById(id);
	}

	@Override
	public int create(TemplateGroupDTO record) {
		TemplateGroupDO entity = new TemplateGroupDO();
		BeanUtils.copyProperties(record, entity);
		return templateGroupDAO.insert(entity);
	}

	@Override
	public TemplateGroupDO getById(Long id) {
		return templateGroupDAO.getById(id);
	}

	@Override
	public int update(TemplateGroupDTO record) {
		TemplateGroupDO entity = new TemplateGroupDO();
		BeanUtils.copyProperties(record, entity);
		return templateGroupDAO.update(entity);
	}

	@Override
	public PageInfo<TemplateGroupDTO> queryPage(TemplateGroupDTO templateGroupDTO) {
		PageHelper.startPage(templateGroupDTO.getPageNum(), templateGroupDTO.getPageSize());
		List<TemplateGroupDO> groupDOS = templateGroupDAO.queryList(MapUtils.parseMap(templateGroupDTO));
		List<TemplateGroupDTO> groupDTOList = ObjectClone.cloneList(groupDOS, TemplateGroupDTO.class);
		return new PageInfo<>(groupDTOList);
	}

	@Override
	public List<TemplateGroupDTO> queryList(TemplateGroupDTO templateGroupDTO) {
		List<TemplateGroupDO> groupDOS = templateGroupDAO.queryList(MapUtils.parseMap(templateGroupDTO));
		List<TemplateGroupDTO> groupDTOList = ObjectClone.cloneList(groupDOS, TemplateGroupDTO.class);
		return  groupDTOList;
	}
}
